using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._Raster._MosaicDataset
{
    /// <summary>
    /// <para>Create Mosaic Dataset</para>
    /// <para>Creates  an empty mosaic dataset in a geodatabase.</para>
    /// <para>在地理数据库中创建空镶嵌数据集。</para>
    /// </summary>    
    [DisplayName("Create Mosaic Dataset")]
    public class CreateMosaicDataset : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public CreateMosaicDataset()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_workspace">
        /// <para>Output Location</para>
        /// <para><xdoc>
        ///   <para>The path to the geodatabase.</para>
        ///   <para>Starting at ArcGIS Pro 1.4, mosaic datasets created in Oracle, PostgreSQL, or SQL Server geodatabases will be created with the new RASTER_STORAGE keyword called RASTERBLOB. The RASTERBLOB keyword implements an efficient transfer of the mosaic dataset catalog items to the DBMS.</para>
        ///   <para>Mosaic datasets created with RASTERBLOB cannot be opened with earlier versions of the software. If you want to create mosaic datasets that are backward compatible with earlier versions, you will need to alter the configuration keyword for RASTER_STORAGE to one of the following compatible keywords:
        ///   <bulletList>
        ///     <bullet_item>BINARY for PostgreSQL and SQL Server  </bullet_item><para/>
        ///     <bullet_item>BLOB for Oracle.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>地理数据库的路径。</para>
        ///   <para>从 ArcGIS Pro 1.4 开始，将在 Oracle、PostgreSQL 或 SQL Server 地理数据库中创建的镶嵌数据集使用名为 RASTERBLOB 的新 RASTER_STORAGE 关键字创建。RASTERBLOB 关键字实现了将镶嵌数据集目录项高效传输到 DBMS。</para>
        /// <para>使用 RASTERBLOB 创建的镶嵌数据集无法使用早期版本的软件打开。如果要创建向后兼容早期版本的镶嵌数据集，则需要将RASTER_STORAGE的配置关键字更改为以下兼容关键字之一：
        ///   <bulletList>
        ///     <bullet_item>适用于 PostgreSQL 和 SQL Server 的 BINARY</bullet_item><para/>
        ///     <bullet_item>适用于 Oracle 的 BLOB。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_in_mosaicdataset_name">
        /// <para>Mosaic Dataset Name</para>
        /// <para>The name of the mosaic dataset you are creating.</para>
        /// <para>要创建的镶嵌数据集的名称。</para>
        /// </param>
        /// <param name="_coordinate_system">
        /// <para>Coordinate System</para>
        /// <para>The coordinate system for all of the items in the mosaic dataset.</para>
        /// <para>镶嵌数据集中所有项目的坐标系。</para>
        /// </param>
        public CreateMosaicDataset(object _in_workspace, object _in_mosaicdataset_name, object _coordinate_system)
        {
            this._in_workspace = _in_workspace;
            this._in_mosaicdataset_name = _in_mosaicdataset_name;
            this._coordinate_system = _coordinate_system;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Create Mosaic Dataset";

        public override string CallName => "management.CreateMosaicDataset";

        public override List<string> AcceptEnvironments => ["configKeyword"];

        public override object[] ParameterInfo => [_in_workspace, _in_mosaicdataset_name, _coordinate_system, _num_bands, _pixel_type.GetGPValue(), _product_definition.GetGPValue(), _product_band_definitions, _out_mosaic_dataset];

        /// <summary>
        /// <para>Output Location</para>
        /// <para><xdoc>
        ///   <para>The path to the geodatabase.</para>
        ///   <para>Starting at ArcGIS Pro 1.4, mosaic datasets created in Oracle, PostgreSQL, or SQL Server geodatabases will be created with the new RASTER_STORAGE keyword called RASTERBLOB. The RASTERBLOB keyword implements an efficient transfer of the mosaic dataset catalog items to the DBMS.</para>
        ///   <para>Mosaic datasets created with RASTERBLOB cannot be opened with earlier versions of the software. If you want to create mosaic datasets that are backward compatible with earlier versions, you will need to alter the configuration keyword for RASTER_STORAGE to one of the following compatible keywords:
        ///   <bulletList>
        ///     <bullet_item>BINARY for PostgreSQL and SQL Server  </bullet_item><para/>
        ///     <bullet_item>BLOB for Oracle.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>地理数据库的路径。</para>
        ///   <para>从 ArcGIS Pro 1.4 开始，将在 Oracle、PostgreSQL 或 SQL Server 地理数据库中创建的镶嵌数据集使用名为 RASTERBLOB 的新 RASTER_STORAGE 关键字创建。RASTERBLOB 关键字实现了将镶嵌数据集目录项高效传输到 DBMS。</para>
        /// <para>使用 RASTERBLOB 创建的镶嵌数据集无法使用早期版本的软件打开。如果要创建向后兼容早期版本的镶嵌数据集，则需要将RASTER_STORAGE的配置关键字更改为以下兼容关键字之一：
        ///   <bulletList>
        ///     <bullet_item>适用于 PostgreSQL 和 SQL Server 的 BINARY</bullet_item><para/>
        ///     <bullet_item>适用于 Oracle 的 BLOB。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Location")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_workspace { get; set; }


        /// <summary>
        /// <para>Mosaic Dataset Name</para>
        /// <para>The name of the mosaic dataset you are creating.</para>
        /// <para>要创建的镶嵌数据集的名称。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Mosaic Dataset Name")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_mosaicdataset_name { get; set; }


        /// <summary>
        /// <para>Coordinate System</para>
        /// <para>The coordinate system for all of the items in the mosaic dataset.</para>
        /// <para>镶嵌数据集中所有项目的坐标系。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Coordinate System")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _coordinate_system { get; set; }


        /// <summary>
        /// <para>Number of Bands</para>
        /// <para>The number of bands the raster datasets will have in the mosaic dataset.</para>
        /// <para>栅格数据集在镶嵌数据集中将具有的波段数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of Bands")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long? _num_bands { get; set; } = null;


        /// <summary>
        /// <para>Pixel Type</para>
        /// <para><xdoc>
        ///   <para>Set the bit depth, or radiometric resolution, of the mosaic dataset. If not defined, it will be taken from the first raster dataset.</para>
        ///   <bulletList>
        ///     <bullet_item>1 bit—A 1-bit unsigned integer. The values can be 0 or 1.</bullet_item><para/>
        ///     <bullet_item>2 bit—A 2-bit unsigned integer. The values supported can be from 0 to 3.</bullet_item><para/>
        ///     <bullet_item>4 bit—A 4-bit unsigned integer. The values supported can be from 0 to 15.</bullet_item><para/>
        ///     <bullet_item>8-bit unsigned—An unsigned 8-bit data type. The values supported can be from 0 to 255.</bullet_item><para/>
        ///     <bullet_item>8-bit signed—A signed 8-bit data type. The values supported can be from -128 to 127.</bullet_item><para/>
        ///     <bullet_item>16-bit unsigned—A 16-bit unsigned data type. The values can range from 0 to 65,535.</bullet_item><para/>
        ///     <bullet_item>16-bit signed—A 16-bit signed data type. The values can range from -32,768 to 32,767.</bullet_item><para/>
        ///     <bullet_item>32-bit unsigned—A 32-bit unsigned data type. The values can range from 0 to 4,294,967,295.</bullet_item><para/>
        ///     <bullet_item>32-bit signed—A 32-bit signed data type. The values can range from -2,147,483,648 to 2,147,483,647.</bullet_item><para/>
        ///     <bullet_item>32-bit floating point—A 32-bit data type supporting decimals.</bullet_item><para/>
        ///     <bullet_item>64 bit—A 64-bit data type supporting decimals.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>设置镶嵌数据集的位深度或辐射分辨率。如果未定义，则将从第一个栅格数据集中获取。</para>
        ///   <bulletList>
        ///     <bullet_item>1 位 - 1 位无符号整数。这些值可以是 0 或 1。</bullet_item><para/>
        ///     <bullet_item>2 位 - 2 位无符号整数。支持的值可以是 0 到 3。</bullet_item><para/>
        ///     <bullet_item>4 位 - 4 位无符号整数。支持的值可以介于 0 到 15 之间。</bullet_item><para/>
        ///     <bullet_item>8 位无符号 - 无符号的 8 位数据类型。支持的值可以介于 0 到 255 之间。</bullet_item><para/>
        ///     <bullet_item>8 位签名 - 带签名的 8 位数据类型。支持的值可以介于 -128 到 127 之间。</bullet_item><para/>
        ///     <bullet_item>16 位无符号 - 16 位无符号数据类型。这些值的范围可以从 0 到 65,535。</bullet_item><para/>
        ///     <bullet_item>16 位有符号 - 16 位有符号数据类型。这些值的范围可以从 -32,768 到 32,767。</bullet_item><para/>
        ///     <bullet_item>32 位无符号 - 32 位无符号数据类型。这些值的范围可以从 0 到 4,294,967,295。</bullet_item><para/>
        ///     <bullet_item>32 位有符号 - 32 位有符号数据类型。这些值的范围可以从 -2,147,483,648 到 2,147,483,647。</bullet_item><para/>
        ///     <bullet_item>32 位浮点 - 支持小数的 32 位数据类型。</bullet_item><para/>
        ///     <bullet_item>64 位 - 支持小数的 64 位数据类型。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Pixel Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _pixel_type_value? _pixel_type { get; set; } = null;

        public enum _pixel_type_value
        {
            /// <summary>
            /// <para>1 bit</para>
            /// <para>1 bit—A 1-bit unsigned integer. The values can be 0 or 1.</para>
            /// <para>1 位 - 1 位无符号整数。这些值可以是 0 或 1。</para>
            /// </summary>
            [Description("1 bit")]
            [GPEnumValue("1_BIT")]
            _1_BIT,

            /// <summary>
            /// <para>2 bit</para>
            /// <para>2 bit—A 2-bit unsigned integer. The values supported can be from 0 to 3.</para>
            /// <para>2 位 - 2 位无符号整数。支持的值可以是 0 到 3。</para>
            /// </summary>
            [Description("2 bit")]
            [GPEnumValue("2_BIT")]
            _2_BIT,

            /// <summary>
            /// <para>4 bit</para>
            /// <para>4 bit—A 4-bit unsigned integer. The values supported can be from 0 to 15.</para>
            /// <para>4 位 - 4 位无符号整数。支持的值可以介于 0 到 15 之间。</para>
            /// </summary>
            [Description("4 bit")]
            [GPEnumValue("4_BIT")]
            _4_BIT,

            /// <summary>
            /// <para>8-bit unsigned</para>
            /// <para>8-bit unsigned—An unsigned 8-bit data type. The values supported can be from 0 to 255.</para>
            /// <para>8 位无符号 - 无符号的 8 位数据类型。支持的值可以介于 0 到 255 之间。</para>
            /// </summary>
            [Description("8-bit unsigned")]
            [GPEnumValue("8_BIT_UNSIGNED")]
            _8_BIT_UNSIGNED,

            /// <summary>
            /// <para>8-bit signed</para>
            /// <para>8-bit signed—A signed 8-bit data type. The values supported can be from -128 to 127.</para>
            /// <para>8 位签名 - 带签名的 8 位数据类型。支持的值可以介于 -128 到 127 之间。</para>
            /// </summary>
            [Description("8-bit signed")]
            [GPEnumValue("8_BIT_SIGNED")]
            _8_BIT_SIGNED,

            /// <summary>
            /// <para>16-bit unsigned</para>
            /// <para>16-bit unsigned—A 16-bit unsigned data type. The values can range from 0 to 65,535.</para>
            /// <para>16 位无符号 - 16 位无符号数据类型。这些值的范围可以从 0 到 65,535。</para>
            /// </summary>
            [Description("16-bit unsigned")]
            [GPEnumValue("16_BIT_UNSIGNED")]
            _16_BIT_UNSIGNED,

            /// <summary>
            /// <para>16-bit signed</para>
            /// <para>16-bit signed—A 16-bit signed data type. The values can range from -32,768 to 32,767.</para>
            /// <para>16 位有符号 - 16 位有符号数据类型。这些值的范围可以从 -32,768 到 32,767。</para>
            /// </summary>
            [Description("16-bit signed")]
            [GPEnumValue("16_BIT_SIGNED")]
            _16_BIT_SIGNED,

            /// <summary>
            /// <para>32-bit unsigned</para>
            /// <para>32-bit unsigned—A 32-bit unsigned data type. The values can range from 0 to 4,294,967,295.</para>
            /// <para>32 位无符号 - 32 位无符号数据类型。这些值的范围可以从 0 到 4,294,967,295。</para>
            /// </summary>
            [Description("32-bit unsigned")]
            [GPEnumValue("32_BIT_UNSIGNED")]
            _32_BIT_UNSIGNED,

            /// <summary>
            /// <para>32-bit signed</para>
            /// <para>32-bit signed—A 32-bit signed data type. The values can range from -2,147,483,648 to 2,147,483,647.</para>
            /// <para>32 位有符号 - 32 位有符号数据类型。这些值的范围可以从 -2,147,483,648 到 2,147,483,647。</para>
            /// </summary>
            [Description("32-bit signed")]
            [GPEnumValue("32_BIT_SIGNED")]
            _32_BIT_SIGNED,

            /// <summary>
            /// <para>32-bit floating point</para>
            /// <para>32-bit floating point—A 32-bit data type supporting decimals.</para>
            /// <para>32 位浮点 - 支持小数的 32 位数据类型。</para>
            /// </summary>
            [Description("32-bit floating point")]
            [GPEnumValue("32_BIT_FLOAT")]
            _32_BIT_FLOAT,

            /// <summary>
            /// <para>64 bit</para>
            /// <para>64 bit—A 64-bit data type supporting decimals.</para>
            /// <para>64 位 - 支持小数的 64 位数据类型。</para>
            /// </summary>
            [Description("64 bit")]
            [GPEnumValue("64_BIT")]
            _64_BIT,

        }

        /// <summary>
        /// <para>Product Definition</para>
        /// <para><xdoc>
        ///   <para>Select a template that is either specific to the type of imagery you are working with or is generic. The generic options include the standard raster data types as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>None—No band ordering is specified for the mosaic dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Natural color—Create a 3-band mosaic dataset, with red, green, and blue wavelength ranges. This is designed for natural color imagery.</bullet_item><para/>
        ///     <bullet_item>Natural color and infrared—Create a 4-band mosaic dataset, with red, green, blue, and near infrared wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>U and V—Create a mosaic dataset displaying two variables.</bullet_item><para/>
        ///     <bullet_item>Magnitude and Direction—Create a mosaic dataset displaying magnitude and direction.</bullet_item><para/>
        ///     <bullet_item>Color infrared—Create a 3-band mosaic dataset, with near infrared, red, and green wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>DMCii—Create a 3-band mosaic dataset using the DMCii wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Deimos-2—Create a 4-band mosaic dataset using the Deimos-2 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>DubaiSat-2—Create a 4-band mosaic dataset using the DubaiSat-2 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>FORMOSAT-2—Create a 4-band mosaic dataset using the FORMOSAT-2 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>GeoEye-1—Create a 4-band mosaic dataset using the GeoEye-1 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>GF-1 Panchromatic/Multispectral (PMS)—Create a 4-band mosaic dataset using the Gaofen-1 Panchromatic Multispectral Sensor wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>GF-1 Wide Field of View (WFV)—Create a 4-band mosaic dataset using the Gaofen-1 Wide Field of View Sensor wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>GF-2 Panchromatic/Multispectral (PMS)—Create a 4-band mosaic dataset using the Gaofen-2 Panchromatic Multispectral Sensor wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>GF-4 Panchromatic/Multispectral Imagery (PMI)—Create a 4-band mosaic dataset using the Gaofen-4 panchromatic and multispectral wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>HJ 1A/1B Multispectral/Hyperspectral—Create a 4-band mosaic dataset using the Huan Jing-1 CCD Multispectral or Hyperspectral Sensor wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>IKONOS—Create a 4-band mosaic dataset using the IKONOS wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Jilin-1—Create a 3-band mosaic dataset using the Jilin-1 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>KOMPSAT-2—Create a 4-band mosaic dataset using the KOMPSAT-2 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>KOMPSAT-3—Create a 4-band mosaic dataset using the KOMPSAT-3 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Landsat TM and ETM+—Create a 6-band mosaic dataset using the Landsat 5 and 7 wavelength ranges from the TM and ETM+ sensors.</bullet_item><para/>
        ///     <bullet_item>Landsat OLI—Create an 8-band mosaic dataset using the LANDSAT 8 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Landsat MSS—Create a 4-band mosaic dataset using the Landsat wavelength ranges from the MSS sensor.</bullet_item><para/>
        ///     <bullet_item>PlanetScope—Create a mosaic dataset using the PlanetScope wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Pleiades 1—Create a 4-band mosaic dataset using the PLEIADES-1 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>QuickBird—Create a 4-band mosaic dataset using the QuickBird wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>RapidEye—Create a 5-band mosaic dataset using the RapidEye wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Sentinel 2 MSI—Create a 13-band mosaic dataset using the Sentinel 2 MSI wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>SkySat-C—Create a 4-band mosaic dataset using the SkySat-C MSI wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Spot 5—Create a 4-band mosaic dataset using the SPOT-5 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Spot 6—Create a 4-band mosaic dataset using the SPOT-6 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Spot 7—Create a 4-band mosaic dataset using the SPOT-7 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>TH-01—Create a 4-band mosaic dataset using the Tian Hui-1 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>WorldView 2—Create an 8-band mosaic dataset using the WorldView-2 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>WorldView 3—Create an 8-band mosaic dataset using the WorldView-3 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>WorldView 4—Create a 4-band mosaic dataset using the WorldView-4 wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>ZY-1 Panchromatic/Multispectral—Create a 3-band mosaic dataset using the ZiYuan-1 panchromatic/multispectral wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>ZY-3 CRESDA—Create a 4-band mosaic dataset using the ZiYuan-3 CRESDA wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>ZY3 SASMAC—Create a 4-band mosaic dataset using the ZiYuan-3 SASMAC wavelength ranges.</bullet_item><para/>
        ///     <bullet_item>Custom—Define the number of bands and the average wavelength for each band.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>选择特定于您正在使用的影像类型或通用的模板。通用选项包括标准栅格数据类型，如下所示：</para>
        ///   <bulletList>
        ///     <bullet_item>无 - 未为镶嵌数据集指定波段排序。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>自然色 - 创建具有红色、绿色和蓝色波长范围的 3 波段镶嵌数据集。这是为自然色图像而设计的。</bullet_item><para/>
        ///     <bullet_item>自然色和红外线 - 创建具有红色、绿色、蓝色和近红外波长范围的 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>u 和 V - 创建显示两个变量的镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>幅度和方向 - 创建显示幅度和方向的镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>彩色红外 - 创建具有近红外、红色和绿色波长范围的 3 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>DMCii - 使用 DMCii 波长范围创建 3 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Deimos-2 - 使用 Deimos-2 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>DubaiSat-2 - 使用 DubaiSat-2 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>FORMOSAT-2—使用 FORMOSAT-2 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>GeoEye-1 - 使用 GeoEye-1 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>GF-1 全色/多光谱 （PMS） - 使用 Gaofen-1 全色多光谱传感器波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>GF-1 宽视场 （WFV） - 使用高分 1 宽视场传感器波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>GF-2 全色/多光谱 （PMS） - 使用高分 2 全色多光谱传感器波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>GF-4 全色/多光谱影像 （PMI） - 使用高分 4 全色波长和多光谱波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>HJ 1A/1B 多光谱/高光谱 - 使用 Huan Jing-1 CCD 多光谱或高光谱传感器波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>IKONOS - 使用 IKONOS 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>吉林一号 - 使用吉林一号波长范围创建 3 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>KOMPSAT-2 - 使用 KOMPSAT-2 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>KOMPSAT-3 - 使用 KOMPSAT-3 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Landsat TM 和 ETM+ - 使用 TM 和 ETM+ 传感器的 Landsat 5 和 7 波长范围创建 6 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Landsat OLI - 使用 LANDSAT 8 波长范围创建 8 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Landsat MSS - 使用 MSS 传感器的 Landsat 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>PlanetScope - 使用 PlanetScope 波长范围创建镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>昴宿星团 1 - 使用 PLEIADES-1 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>QuickBird - 使用 QuickBird 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>RapidEye - 使用 RapidEye 波长范围创建 5 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Sentinel 2 MSI - 使用 Sentinel 2 MSI 波长范围创建 13 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>SkySat-C - 使用 SkySat-C MSI 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Spot 5 - 使用 SPOT-5 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Spot 6 - 使用 SPOT-6 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>Spot 7 - 使用 SPOT-7 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>TH-01 - 使用 Tian Hui-1 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>WorldView 2 - 使用 WorldView-2 波长范围创建 8 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>WorldView 3 - 使用 WorldView-3 波长范围创建 8 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>WorldView 4 - 使用 WorldView-4 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>ZY-1 全色/多光谱 - 使用 ZiYuan-1 全色/多光谱波长范围创建 3 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>ZY-3 CRESDA - 使用 ZiYuan-3 CRESDA 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>ZY3 SASMAC - 使用 ZiYuan-3 SASMAC 波长范围创建 4 波段镶嵌数据集。</bullet_item><para/>
        ///     <bullet_item>自定义 （Custom） - 定义每个波段的波段数和平均波长。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Product Definition")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _product_definition_value _product_definition { get; set; } = _product_definition_value._NONE;

        public enum _product_definition_value
        {
            /// <summary>
            /// <para>None</para>
            /// <para>None—No band ordering is specified for the mosaic dataset. This is the default.</para>
            /// <para>无 - 未为镶嵌数据集指定波段排序。这是默认设置。</para>
            /// </summary>
            [Description("None")]
            [GPEnumValue("NONE")]
            _NONE,

            /// <summary>
            /// <para>Natural color</para>
            /// <para>Natural color—Create a 3-band mosaic dataset, with red, green, and blue wavelength ranges. This is designed for natural color imagery.</para>
            /// <para>自然色 - 创建具有红色、绿色和蓝色波长范围的 3 波段镶嵌数据集。这是为自然色图像而设计的。</para>
            /// </summary>
            [Description("Natural color")]
            [GPEnumValue("NATURAL_COLOR_RGB")]
            _NATURAL_COLOR_RGB,

            /// <summary>
            /// <para>Natural color and infrared</para>
            /// <para>Natural color and infrared—Create a 4-band mosaic dataset, with red, green, blue, and near infrared wavelength ranges.</para>
            /// <para>自然色和红外线 - 创建具有红色、绿色、蓝色和近红外波长范围的 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Natural color and infrared")]
            [GPEnumValue("NATURAL_COLOR_RGBI")]
            _NATURAL_COLOR_RGBI,

            /// <summary>
            /// <para>Color infrared</para>
            /// <para>Color infrared—Create a 3-band mosaic dataset, with near infrared, red, and green wavelength ranges.</para>
            /// <para>彩色红外 - 创建具有近红外、红色和绿色波长范围的 3 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Color infrared")]
            [GPEnumValue("FALSE_COLOR_IRG")]
            _FALSE_COLOR_IRG,

            /// <summary>
            /// <para>U and V</para>
            /// <para>U and V—Create a mosaic dataset displaying two variables.</para>
            /// <para>u 和 V - 创建显示两个变量的镶嵌数据集。</para>
            /// </summary>
            [Description("U and V")]
            [GPEnumValue("VECTOR_FIELD_UV")]
            _VECTOR_FIELD_UV,

            /// <summary>
            /// <para>Magnitude and Direction</para>
            /// <para>Magnitude and Direction—Create a mosaic dataset displaying magnitude and direction.</para>
            /// <para>幅度和方向 - 创建显示幅度和方向的镶嵌数据集。</para>
            /// </summary>
            [Description("Magnitude and Direction")]
            [GPEnumValue("VECTOR_FIELD_MAGNITUDE_DIRECTION")]
            _VECTOR_FIELD_MAGNITUDE_DIRECTION,

            /// <summary>
            /// <para>Deimos-2</para>
            /// <para>Deimos-2—Create a 4-band mosaic dataset using the Deimos-2 wavelength ranges.</para>
            /// <para>Deimos-2 - 使用 Deimos-2 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Deimos-2")]
            [GPEnumValue("DEIMOS2_4BANDS")]
            _DEIMOS2_4BANDS,

            /// <summary>
            /// <para>DMCii</para>
            /// <para>DMCii—Create a 3-band mosaic dataset using the DMCii wavelength ranges.</para>
            /// <para>DMCii - 使用 DMCii 波长范围创建 3 波段镶嵌数据集。</para>
            /// </summary>
            [Description("DMCii")]
            [GPEnumValue("DMCII_3BANDS")]
            _DMCII_3BANDS,

            /// <summary>
            /// <para>DubaiSat-2</para>
            /// <para>DubaiSat-2—Create a 4-band mosaic dataset using the DubaiSat-2 wavelength ranges.</para>
            /// <para>DubaiSat-2 - 使用 DubaiSat-2 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("DubaiSat-2")]
            [GPEnumValue("DUBAISAT-2_4BANDS")]
            value8,

            /// <summary>
            /// <para>FORMOSAT-2</para>
            /// <para>FORMOSAT-2—Create a 4-band mosaic dataset using the FORMOSAT-2 wavelength ranges.</para>
            /// <para>FORMOSAT-2—使用 FORMOSAT-2 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("FORMOSAT-2")]
            [GPEnumValue("FORMOSAT-2_4BANDS")]
            value9,

            /// <summary>
            /// <para>GeoEye-1</para>
            /// <para>GeoEye-1—Create a 4-band mosaic dataset using the GeoEye-1 wavelength ranges.</para>
            /// <para>GeoEye-1 - 使用 GeoEye-1 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("GeoEye-1")]
            [GPEnumValue("GEOEYE-1_4BANDS")]
            value10,

            /// <summary>
            /// <para>GF-1 Panchromatic/Multispectral (PMS)</para>
            /// <para>GF-1 Panchromatic/Multispectral (PMS)—Create a 4-band mosaic dataset using the Gaofen-1 Panchromatic Multispectral Sensor wavelength ranges.</para>
            /// <para>GF-1 全色/多光谱 （PMS） - 使用 Gaofen-1 全色多光谱传感器波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("GF-1 Panchromatic/Multispectral (PMS)")]
            [GPEnumValue("GF-1 PMS_4BANDS")]
            value11,

            /// <summary>
            /// <para>GF-1 Wide Field of View (WFV)</para>
            /// <para>GF-1 Wide Field of View (WFV)—Create a 4-band mosaic dataset using the Gaofen-1 Wide Field of View Sensor wavelength ranges.</para>
            /// <para>GF-1 宽视场 （WFV） - 使用高分 1 宽视场传感器波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("GF-1 Wide Field of View (WFV)")]
            [GPEnumValue("GF-1 WFV_4BANDS")]
            value12,

            /// <summary>
            /// <para>GF-2 Panchromatic/Multispectral (PMS)</para>
            /// <para>GF-2 Panchromatic/Multispectral (PMS)—Create a 4-band mosaic dataset using the Gaofen-2 Panchromatic Multispectral Sensor wavelength ranges.</para>
            /// <para>GF-2 全色/多光谱 （PMS） - 使用高分 2 全色多光谱传感器波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("GF-2 Panchromatic/Multispectral (PMS)")]
            [GPEnumValue("GF-2 PMS_4BANDS")]
            value13,

            /// <summary>
            /// <para>GF-4 Panchromatic/Multispectral Imagery (PMI)</para>
            /// <para>GF-4 Panchromatic/Multispectral Imagery (PMI)—Create a 4-band mosaic dataset using the Gaofen-4 panchromatic and multispectral wavelength ranges.</para>
            /// <para>GF-4 全色/多光谱影像 （PMI） - 使用高分 4 全色波长和多光谱波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("GF-4 Panchromatic/Multispectral Imagery (PMI)")]
            [GPEnumValue("GF-4 PMI_4BANDS")]
            value14,

            /// <summary>
            /// <para>HJ 1A/1B Multispectral/Hyperspectral</para>
            /// <para>HJ 1A/1B Multispectral/Hyperspectral—Create a 4-band mosaic dataset using the Huan Jing-1 CCD Multispectral or Hyperspectral Sensor wavelength ranges.</para>
            /// <para>HJ 1A/1B 多光谱/高光谱 - 使用 Huan Jing-1 CCD 多光谱或高光谱传感器波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("HJ 1A/1B Multispectral/Hyperspectral")]
            [GPEnumValue("HJ 1A/1B CCD_4BANDS")]
            value15,

            /// <summary>
            /// <para>IKONOS</para>
            /// <para>IKONOS—Create a 4-band mosaic dataset using the IKONOS wavelength ranges.</para>
            /// <para>IKONOS - 使用 IKONOS 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("IKONOS")]
            [GPEnumValue("IKONOS_4BANDS")]
            _IKONOS_4BANDS,

            /// <summary>
            /// <para>Jilin-1</para>
            /// <para>Jilin-1—Create a 3-band mosaic dataset using the Jilin-1 wavelength ranges.</para>
            /// <para>吉林一号 - 使用吉林一号波长范围创建 3 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Jilin-1")]
            [GPEnumValue("JILIN-1_3BANDS")]
            value17,

            /// <summary>
            /// <para>KOMPSAT-2</para>
            /// <para>KOMPSAT-2—Create a 4-band mosaic dataset using the KOMPSAT-2 wavelength ranges.</para>
            /// <para>KOMPSAT-2 - 使用 KOMPSAT-2 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("KOMPSAT-2")]
            [GPEnumValue("KOMPSAT-2_4BANDS")]
            value18,

            /// <summary>
            /// <para>KOMPSAT-3</para>
            /// <para>KOMPSAT-3—Create a 4-band mosaic dataset using the KOMPSAT-3 wavelength ranges.</para>
            /// <para>KOMPSAT-3 - 使用 KOMPSAT-3 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("KOMPSAT-3")]
            [GPEnumValue("KOMPSAT-3_4BANDS")]
            value19,

            /// <summary>
            /// <para>Landsat TM and ETM+</para>
            /// <para>Landsat TM and ETM+—Create a 6-band mosaic dataset using the Landsat 5 and 7 wavelength ranges from the TM and ETM+ sensors.</para>
            /// <para>Landsat TM 和 ETM+ - 使用 TM 和 ETM+ 传感器的 Landsat 5 和 7 波长范围创建 6 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Landsat TM and ETM+")]
            [GPEnumValue("LANDSAT_6BANDS")]
            _LANDSAT_6BANDS,

            /// <summary>
            /// <para>Landsat MSS</para>
            /// <para>Landsat MSS—Create a 4-band mosaic dataset using the Landsat wavelength ranges from the MSS sensor.</para>
            /// <para>Landsat MSS - 使用 MSS 传感器的 Landsat 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Landsat MSS")]
            [GPEnumValue("LANDSAT_MSS_4BANDS")]
            _LANDSAT_MSS_4BANDS,

            /// <summary>
            /// <para>Landsat OLI</para>
            /// <para>Landsat OLI—Create an 8-band mosaic dataset using the LANDSAT 8 wavelength ranges.</para>
            /// <para>Landsat OLI - 使用 LANDSAT 8 波长范围创建 8 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Landsat OLI")]
            [GPEnumValue("LANDSAT_8BANDS")]
            _LANDSAT_8BANDS,

            /// <summary>
            /// <para>PlanetScope</para>
            /// <para>PlanetScope—Create a mosaic dataset using the PlanetScope wavelength ranges.</para>
            /// <para>PlanetScope - 使用 PlanetScope 波长范围创建镶嵌数据集。</para>
            /// </summary>
            [Description("PlanetScope")]
            [GPEnumValue("PlanetScope")]
            _PlanetScope,

            /// <summary>
            /// <para>Pleiades 1</para>
            /// <para>Pleiades 1—Create a 4-band mosaic dataset using the PLEIADES-1 wavelength ranges.</para>
            /// <para>昴宿星团 1 - 使用 PLEIADES-1 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Pleiades 1")]
            [GPEnumValue("PLEIADES-1_4BANDS")]
            value24,

            /// <summary>
            /// <para>QuickBird</para>
            /// <para>QuickBird—Create a 4-band mosaic dataset using the QuickBird wavelength ranges.</para>
            /// <para>QuickBird - 使用 QuickBird 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("QuickBird")]
            [GPEnumValue("QUICKBIRD_4BANDS")]
            _QUICKBIRD_4BANDS,

            /// <summary>
            /// <para>RapidEye</para>
            /// <para>RapidEye—Create a 5-band mosaic dataset using the RapidEye wavelength ranges.</para>
            /// <para>RapidEye - 使用 RapidEye 波长范围创建 5 波段镶嵌数据集。</para>
            /// </summary>
            [Description("RapidEye")]
            [GPEnumValue("RAPIDEYE_5BANDS")]
            _RAPIDEYE_5BANDS,

            /// <summary>
            /// <para>Sentinel 2 MSI</para>
            /// <para>Sentinel 2 MSI—Create a 13-band mosaic dataset using the Sentinel 2 MSI wavelength ranges.</para>
            /// <para>Sentinel 2 MSI - 使用 Sentinel 2 MSI 波长范围创建 13 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Sentinel 2 MSI")]
            [GPEnumValue("SENTINEL2_13BANDS")]
            _SENTINEL2_13BANDS,

            /// <summary>
            /// <para>SkySat-C</para>
            /// <para>SkySat-C—Create a 4-band mosaic dataset using the SkySat-C MSI wavelength ranges.</para>
            /// <para>SkySat-C - 使用 SkySat-C MSI 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("SkySat-C")]
            [GPEnumValue("SKYSAT_4BANDS")]
            _SKYSAT_4BANDS,

            /// <summary>
            /// <para>Spot 5</para>
            /// <para>Spot 5—Create a 4-band mosaic dataset using the SPOT-5 wavelength ranges.</para>
            /// <para>Spot 5 - 使用 SPOT-5 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Spot 5")]
            [GPEnumValue("SPOT-5_4BANDS")]
            value29,

            /// <summary>
            /// <para>Spot 6</para>
            /// <para>Spot 6—Create a 4-band mosaic dataset using the SPOT-6 wavelength ranges.</para>
            /// <para>Spot 6 - 使用 SPOT-6 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Spot 6")]
            [GPEnumValue("SPOT-6_4BANDS")]
            value30,

            /// <summary>
            /// <para>Spot 7</para>
            /// <para>Spot 7—Create a 4-band mosaic dataset using the SPOT-7 wavelength ranges.</para>
            /// <para>Spot 7 - 使用 SPOT-7 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("Spot 7")]
            [GPEnumValue("SPOT-7_4BANDS")]
            value31,

            /// <summary>
            /// <para>TH-01</para>
            /// <para>TH-01—Create a 4-band mosaic dataset using the Tian Hui-1 wavelength ranges.</para>
            /// <para>TH-01 - 使用 Tian Hui-1 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("TH-01")]
            [GPEnumValue("TH-01_4BANDS")]
            value32,

            /// <summary>
            /// <para>WorldView 2</para>
            /// <para>WorldView 2—Create an 8-band mosaic dataset using the WorldView-2 wavelength ranges.</para>
            /// <para>WorldView 2 - 使用 WorldView-2 波长范围创建 8 波段镶嵌数据集。</para>
            /// </summary>
            [Description("WorldView 2")]
            [GPEnumValue("WORLDVIEW-2_8BANDS")]
            value33,

            /// <summary>
            /// <para>WorldView 3</para>
            /// <para>WorldView 3—Create an 8-band mosaic dataset using the WorldView-3 wavelength ranges.</para>
            /// <para>WorldView 3 - 使用 WorldView-3 波长范围创建 8 波段镶嵌数据集。</para>
            /// </summary>
            [Description("WorldView 3")]
            [GPEnumValue("WORLDVIEW-3_8BANDS")]
            value34,

            /// <summary>
            /// <para>WorldView 4</para>
            /// <para>WorldView 4—Create a 4-band mosaic dataset using the WorldView-4 wavelength ranges.</para>
            /// <para>WorldView 4 - 使用 WorldView-4 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("WorldView 4")]
            [GPEnumValue("WORLDVIEW-4_4BANDS")]
            value35,

            /// <summary>
            /// <para>ZY-1 Panchromatic/Multispectral</para>
            /// <para>ZY-1 Panchromatic/Multispectral—Create a 3-band mosaic dataset using the ZiYuan-1 panchromatic/multispectral wavelength ranges.</para>
            /// <para>ZY-1 全色/多光谱 - 使用 ZiYuan-1 全色/多光谱波长范围创建 3 波段镶嵌数据集。</para>
            /// </summary>
            [Description("ZY-1 Panchromatic/Multispectral")]
            [GPEnumValue("ZY1-02C PMS_3BANDS")]
            value36,

            /// <summary>
            /// <para>ZY-3 CRESDA</para>
            /// <para>ZY-3 CRESDA—Create a 4-band mosaic dataset using the ZiYuan-3 CRESDA wavelength ranges.</para>
            /// <para>ZY-3 CRESDA - 使用 ZiYuan-3 CRESDA 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("ZY-3 CRESDA")]
            [GPEnumValue("ZY3-CRESDA_4BANDS")]
            value37,

            /// <summary>
            /// <para>ZY3 SASMAC</para>
            /// <para>ZY3 SASMAC—Create a 4-band mosaic dataset using the ZiYuan-3 SASMAC wavelength ranges.</para>
            /// <para>ZY3 SASMAC - 使用 ZiYuan-3 SASMAC 波长范围创建 4 波段镶嵌数据集。</para>
            /// </summary>
            [Description("ZY3 SASMAC")]
            [GPEnumValue("ZY3-SASMAC_4BANDS")]
            value38,

            /// <summary>
            /// <para>Custom</para>
            /// <para>Custom—Define the number of bands and the average wavelength for each band.</para>
            /// <para>自定义 （Custom） - 定义每个波段的波段数和平均波长。</para>
            /// </summary>
            [Description("Custom")]
            [GPEnumValue("CUSTOM")]
            _CUSTOM,

        }

        /// <summary>
        /// <para>Product Band Definitions</para>
        /// <para>Edit Product Definition by adjusting the wavelength ranges, changing the band order, and adding new bands.</para>
        /// <para>通过调整波长范围、更改波段顺序和添加新波段来编辑产品定义。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Product Band Definitions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _product_band_definitions { get; set; } = null;


        /// <summary>
        /// <para>Output Mosaic Dataset</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Mosaic Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_mosaic_dataset { get; set; }


        public CreateMosaicDataset SetEnv(object configKeyword = null)
        {
            base.SetEnv(configKeyword: configKeyword);
            return this;
        }

    }

}